A verified abstract machine for functional coroutines
نویسنده
چکیده
Functional coroutines are a restricted form of control mechanism, where each coroutine is represented with both a continuation and an environment. This restriction was originally obtained by considering a constructive version of Parigot’s classical natural deduction which is sound and complete for the Constant Domain logic. In this article, we present a refinement of de Groote’s abstract machine for functional coroutines and we prove its correctness. Therefore, this abstract machine also provides a direct computational interpretation of the Constant Domain logic.
منابع مشابه
Implementing Dependable Process Control Applications using BCPL Coroutines and Cintpos (draft)
This paper outlines a method of implementing large and complex process control applications where extreme reliability is required and where the application is expected to have a long life of perhaps between 20 and 50 years. The approach relies on the use of a interpretive abstract machine that supports a multi-tasking operating system. The entire system including the operating system and the co...
متن کاملSimplified Concurrency: A Java Simulation Framework
1 The authors’ e-mail addresses are: {weiland, weather, keven, epage, rmikula, fkuhl}@mitre.org. ABSTRACT Discrete-event simulation programs may be written as interacting processes, and many languages, both special-purpose, and general-purpose, support this implementation. Extant frameworks in Java supporting the interacting-processes paradigm use coroutines based on Java threads, which limits ...
متن کاملTyping Coroutines
A coroutine is a programming construct between function and thread. It can be invoked like a function, but before it returns a value (if ever) it may suspend itself arbitrarily often to return intermediate results and then be resumed with new inputs. Unlike with preemptive threading, a coroutine does not run concurrently with the rest of the program, but rather takes control until it voluntaril...
متن کاملDeriving Type Systems and Implementations for Coroutines
Starting from reduction semantics for several styles of coroutines from the literature, we apply Danvy’s method to obtain equivalent functional implementations (definitional interpreters) for them. By applying existing type systems for programs with continuations, we obtain sound type systems for coroutines through the translation. The resulting type systems are similar to earlier hand-crafted ...
متن کاملOn unifying the coroutines and resumable functions proposals
I have argued in the past that there are commonalities between the different coroutine proposals and that there are opportunities for a unified proposal. This paper is meant to provide more detail about this. So far, the proposals have been presented as separate vertical solutions, and it has been claimed that there is no substantial common ground between them. However, I believe we should be l...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015